package es.capgemini.extjsplugin.core;

import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaCore;
/**
 * Clase con metodos de utilidad
 * @author Lisandro Medrano
 *
 */
public class Utils {
	public static String toUpperCamelCase(String texto) {
        char letra = '\0';
        String nuevoTexto = "", resto = "";
        // Borrando los espacios en blanco
        texto = texto.trim();
        // cogiendo un string a partir de la segunda letra
        resto = texto.substring(1);
        // cogiendo la primera letra en un char
        letra = texto.charAt(0);
        // poniendo dicha letra en mayusculas
        letra = Character.toUpperCase(letra);
        // concatenando todo
        nuevoTexto = letra + resto;
        return nuevoTexto;
    }

    public static String toLowerCamelCase(String texto) {

        char letra = '\0';
        String nuevoTexto = "", resto = "";
        // Borrando los espacios en blanco
        texto = texto.trim();
        // cogiendo un string a partir de la segunda letra
        resto = texto.substring(1);
        // cogiendo la primera letra en un char
        letra = texto.charAt(0);
        // poniendo dicha letra en mayusculas
        letra = Character.toLowerCase(letra);
        // concatenando todo
        nuevoTexto = letra + resto;
        return nuevoTexto;
    }

	/**
	 * Carga la clase seleccionada con el classloader del workspace (el classLoader del plugin no puede ver el classpath de los proyectos del eclipse)
	 * @param selectedClass
	 */
	public static Class loadClass(IType selectedClass){
		String name=selectedClass.getFullyQualifiedName();
	    IJavaProject p=JavaCore.create(selectedClass.getResource().getProject()).getJavaProject();
	    BlackmoreClassLoader classLoader = new BlackmoreClassLoader(p);
	    return classLoader.findClass(name);
	
	}
    /**
     * Determina si una clase implementa la interfaz Dictionary
     * @param clase
     * @return
     */
    public static boolean esDiccionario(Class clase) {
        Class interf[] = clase.getInterfaces();
        for (Class c : interf) {
            // System.out.println(c.getName());
            if (c.getSimpleName().equals("Dictionary")) { return true; }
        }
        return false;
    }
}
